home *** CD-ROM | disk | FTP | other *** search
-
-
-
- rrrrmmmmffffrrrreeeeeeee((((DDDD3333)))) rrrrmmmmffffrrrreeeeeeee((((DDDD3333))))
-
-
-
- NNNNAAAAMMMMEEEE
- _rrrr_mmmm_ffff_rrrr_eeee_eeee - free space into a private space management map
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_tttt_yyyy_pppp_eeee_ssss_...._hhhh_>>>>
- _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_mmmm_aaaa_pppp_...._hhhh_>>>>
- _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_dddd_dddd_iiii_...._hhhh_>>>>
- _vvvv_oooo_iiii_dddd _rrrr_mmmm_ffff_rrrr_eeee_eeee_((((_ssss_tttt_rrrr_uuuu_cccc_tttt _mmmm_aaaa_pppp _****_m_p_,,,, _ssss_iiii_zzzz_eeee______tttt _s_i_z_e_,,,, _uuuu_llll_oooo_nnnn_gggg______tttt _i_n_d_e_x_))))_;;;;
-
- AAAArrrrgggguuuummmmeeeennnnttttssss
- _m_p Pointer to the map.
-
- _s_i_z_e Number of units to free into the map.
-
- _i_n_d_e_x Index of the first unit of the space being freed.
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _rrrr_mmmm_ffff_rrrr_eeee_eeee releases space into the private space management map pointed to by
- _m_p and wakes up any processes that are waiting for space.
-
- RRRReeeettttuuuurrrrnnnn VVVVaaaalllluuuueeeessss
- None
-
- UUUUSSSSAAAAGGGGEEEE
- _rrrr_mmmm_ffff_rrrr_eeee_eeee should be called to return space that had been allocated by a
- previous call to _rrrr_mmmm_aaaa_llll_llll_oooo_cccc(D3), in which case _i_n_d_e_x is the value returned
- from the corresponding call to _rrrr_mmmm_aaaa_llll_llll_oooo_cccc. _rrrr_mmmm_ffff_rrrr_eeee_eeee should also be called to
- add space to a newly allocated map prior to the first call to _rrrr_mmmm_aaaa_llll_llll_oooo_cccc, in
- which case _i_n_d_e_x specifies the base of the space being added.
-
- Both _s_i_z_e and _i_n_d_e_x are in arbitrary units. The driver using the map
- places whatever semantics on the units are appropriate for the type of
- space being managed. For example, units may be byte addresses, pages of
- memory, or blocks on a device.
-
- If the space being returned is adjacent to other space in the map, _rrrr_mmmm_ffff_rrrr_eeee_eeee
- will coalesce the adjacent fragments.
-
- If the _rrrr_mmmm_ffff_rrrr_eeee_eeee call causes the number of fragments in the map to exceed
- the number of map entries specified by _rrrr_mmmm_iiii_nnnn_iiii_tttt(D3) (for singlethreaded
- drivers) or _rrrr_mmmm_aaaa_llll_llll_oooo_cccc_mmmm_aaaa_pppp(D3) (for multithreaded drivers) the following
- warning message is displayed on the console:
- _WWWW_AAAA_RRRR_NNNN_IIII_NNNN_GGGG_:::: _rrrr_mmmm_ffff_rrrr_eeee_eeee _mmmm_aaaa_pppp _oooo_vvvv_eeee_rrrr_ffff_llll_oooo_wwww _m_p _llll_oooo_ssss_tttt _s_i_z_e _iiii_tttt_eeee_mmmm_ssss _aaaa_tttt _i_n_d_e_x
- This implies that the driver should specify a larger number of map
- entries when initializing the map.
-
- LLLLeeeevvvveeeellll
- Base or Interrupt.
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- rrrrmmmmffffrrrreeeeeeee((((DDDD3333)))) rrrrmmmmffffrrrreeeeeeee((((DDDD3333))))
-
-
-
- SSSSyyyynnnncccchhhhrrrroooonnnniiiizzzzaaaattttiiiioooonnnn CCCCoooonnnnssssttttrrrraaaaiiiinnnnttttssss
- Does not sleep.
-
- Driver-defined basic locks, read/write locks, and sleep locks may be held
- across calls to this function.
-
- EEEExxxxaaaammmmpppplllleeeessss
- See _rrrr_mmmm_aaaa_llll_llll_oooo_cccc(D3) for an example of _rrrr_mmmm_ffff_rrrr_eeee_eeee.
-
- RRRREEEEFFFFEEEERRRREEEENNNNCCCCEEEESSSS
- _rrrr_mmmm_aaaa_llll_llll_oooo_cccc(D3), _rrrr_mmmm_aaaa_llll_llll_oooo_cccc______wwww_aaaa_iiii_tttt(D3), _rrrr_mmmm_aaaa_llll_llll_oooo_cccc_mmmm_aaaa_pppp(D3), _rrrr_mmmm_ffff_rrrr_eeee_eeee_mmmm_aaaa_pppp(D3), _rrrr_mmmm_iiii_nnnn_iiii_tttt(D3),
- _rrrr_mmmm_ssss_eeee_tttt_wwww_aaaa_nnnn_tttt(D3)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-